CREATE TABLE [dbo].[tb_ServiciosHistoricosMultiples]
(
[idServiciosHistoricosMultiples] [int] NOT NULL IDENTITY(1, 1),
[Agente] [int] NOT NULL,
[Organizacion] [int] NOT NULL,
[DesdeS1] [datetime] NOT NULL,
[hastaS1] [datetime] NULL,
[DesdeS2] [datetime] NULL,
[HastaS2] [datetime] NULL,
[DesdeS3] [datetime] NULL,
[HastaS3] [datetime] NULL,
[DesdeS4] [datetime] NULL,
[HastaS4] [datetime] NULL,
[DesdeS5] [datetime] NULL,
[HastaS5] [datetime] NULL,
[DesdeS6] [datetime] NULL,
[HastaS6] [datetime] NULL,
[CargoGen] [int] NULL,
[AsignaturaGen] [int] NULL,
[GrupoIncumbencias] [int] NULL,
[Nivel] [int] NULL,
[Modalidad] [int] NULL,
[Zona] [int] NULL
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[InsertarServiciosHistoricos] ON [dbo].[tb_ServiciosHistoricosMultiples] 
FOR INSERT


AS

BEGIN
SET NOCOUNT ON
DECLARE @nivel_o int
DECLARE @modalidad_o int
DECLARE @zona_o int

DECLARE @nivel int
DECLARE @modalidad int
DECLARE @zona int

DECLARE @organizacion int
DECLARE @DescrUbic Varchar(100)
DECLARE @Localidad  int
DECLARE @idservicio int
DECLARE @CargoGen int
DECLARE @AsignaturaGen int
DECLARE @IDAGENTE INT
DECLARE @D1 datetime
DECLARE @H1 datetime
DECLARE @D2 datetime
DECLARE @H2 datetime
DECLARE @D3 datetime
DECLARE @H3 datetime
DECLARE @D4 datetime
DECLARE @H4 datetime
DECLARE @D5 datetime
DECLARE @H5 datetime
DECLARE @D6 datetime
DECLARE @H6 datetime
DECLARE @GrupoIncumbencias int
 

SELECT @idservicio=idservicioshistoricosmultiples,@organizacion=organizacion , @IDAGENTE=AGENTE, @CargoGen=CargoGen,@AsignaturaGen=AsignaturaGen, @GrupoIncumbencias=GrupoIncumbencias,@nivel=nivel, @modalidad=modalidad ,@zona=zona,@D1=DESDES1, @H1=HASTAS1, @D2=DESDES2, @H2=HASTAS2, @D3=DESDES3, @H3=HASTAS3,@D4=DESDES4, @H4=HASTAS4, @D5=DESDES5, @H5=HASTAS5, @D6=DESDES6, @H6=HASTAS6 FROM INSERTED
--@nivel=nivel, @modalidad=modalidad ,@zona=zona FROM INSERTED


IF  @organizacion IS not NULL
     
      	
	  if (select count(*) from tb_suborganizaciones s where s.org=@organizacion)=1  
	         BEGIN
	               --Leo los datos de niv, mod, zona de la suborganizacion
		SELECT @nivel_o=nivel, @modalidad_o=modalidad ,@zona_o=zona,@descrubic=descripcion,@Localidad=localidad FROM tb_suborganizaciones s where s.org=@organizacion
		      -- IF ( @nivel is not  null and @modalidad is not  null and @zona is not null )
	                  -- INSERT tb_servicioshistoricos set nivel=ISNULL(@nivel,1),modalidad=ISNULL(@modalidad,5), zona=ISNULL(@zona,1) where idserviciohistorico=@idservicio
                      END
	ELSE
                      BEGIN
	   		 RAISERROR(' no puedo determinar  NIVEL, MODALIDAD y ZONA !!! , a partir de la organización'    , 16, 1)
		    	 ROLLBACK TRANSACTION
	         END
         ELSE
         		 BEGIN
			     RAISERROR('Debe ingresar una Organización válida  !!!' , 16, 1)
			     ROLLBACK TRANSACTION
		END
   
END

--Si nivel, modalidad o zona vienen en null, les pongo el que trae de la organización
select @nivel=isnull(@nivel,@nivel_o)
select @Modalidad=isnull(@Modalidad,@Modalidad_o)
select @Zona=isnull(@Zona,@Zona_o)

IF @D1 IS NULL AND @D2 IS NULL AND @D3 IS NULL AND @D4 IS NULL AND @D5 IS NULL AND @D6 IS NULL 
BEGIN
	 RAISERROR('Debe ingresar al menos una fecha Desde válida... !!!' , 16, 1)
	 ROLLBACK TRANSACTION
END
	 ELSE
		BEGIN	
			IF @D1 IS not null
			BEGIN
				INSERT INTO dbo.tb_ServiciosHistoricos
				(idAgente,NumeroOrden,CargoGenerico,AsignaturaGenerica,Horas,UbicacionOriginal,DescrUbic,Localidad,SituacionRevista,FechaAlta,Baja,FechaBaja,FechaTermino,NormaBaja,CausaBaja,CausaAlta,TipoServicio,Sistema,RegimenLaboral,Financiamiento,Presupuesto,	Finalidad,TipoDeFuncion,RegimenSalarial,RegimenDesignacion,NroAfiliadoJubilacion,CajaJubilacion,NormaAlta,CategoriaTitulo,FechaDeCarga9,ServicioAgente,Nivel,Ciclo,Modalidad,Zona,grupoIncumbencias,FechaPresentacion,Controlado,Cargo)
				VALUES 
				(@idagente,null,@cargogen,@asignaturagen,null,@Organizacion,@descrubic,@localidad,null,@D1,null,@H1,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,getdate(),null,@nivel,null,@modalidad,@zona,@grupoincumbencias,null,null,null)
			END
			IF @D2 IS not null
			BEGIN
				INSERT INTO dbo.tb_ServiciosHistoricos
				(idAgente,NumeroOrden,CargoGenerico,AsignaturaGenerica,Horas,UbicacionOriginal,DescrUbic,Localidad,SituacionRevista,FechaAlta,Baja,FechaBaja,FechaTermino,NormaBaja,CausaBaja,CausaAlta,TipoServicio,Sistema,RegimenLaboral,Financiamiento,Presupuesto,	Finalidad,TipoDeFuncion,RegimenSalarial,RegimenDesignacion,NroAfiliadoJubilacion,CajaJubilacion,NormaAlta,CategoriaTitulo,FechaDeCarga9,ServicioAgente,Nivel,Ciclo,Modalidad,Zona,grupoIncumbencias,FechaPresentacion,Controlado,Cargo)
				VALUES 
				(@idagente,null,@cargogen,@asignaturagen,null,@Organizacion,@descrubic,@localidad,null,@D2,null,@H2,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,getdate() ,null,@nivel,null,@modalidad,@zona,@grupoincumbencias,null,null,null)
			END
			IF @D3 IS not null
			BEGIN
				INSERT INTO dbo.tb_ServiciosHistoricos
				(idAgente,NumeroOrden,CargoGenerico,AsignaturaGenerica,Horas,UbicacionOriginal,DescrUbic,Localidad,SituacionRevista,FechaAlta,Baja,FechaBaja,FechaTermino,NormaBaja,CausaBaja,CausaAlta,TipoServicio,Sistema,RegimenLaboral,Financiamiento,Presupuesto,	Finalidad,TipoDeFuncion,RegimenSalarial,RegimenDesignacion,NroAfiliadoJubilacion,CajaJubilacion,NormaAlta,CategoriaTitulo,FechaDeCarga9,ServicioAgente,Nivel,Ciclo,Modalidad,Zona,grupoIncumbencias,FechaPresentacion,Controlado,Cargo)
				VALUES 
				(@idagente,null,@cargogen,@asignaturagen,null,@Organizacion,@descrubic,@localidad,null,@D3,null,@H3,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,getdate(),null,@nivel,null,@modalidad,@zona,@grupoincumbencias,null,null,null)
			END
			IF @D4 IS not null
			BEGIN
				INSERT INTO dbo.tb_ServiciosHistoricos
				(idAgente,NumeroOrden,CargoGenerico,AsignaturaGenerica,Horas,UbicacionOriginal,DescrUbic,Localidad,SituacionRevista,FechaAlta,Baja,FechaBaja,FechaTermino,NormaBaja,CausaBaja,CausaAlta,TipoServicio,Sistema,RegimenLaboral,Financiamiento,Presupuesto,	Finalidad,TipoDeFuncion,RegimenSalarial,RegimenDesignacion,NroAfiliadoJubilacion,CajaJubilacion,NormaAlta,CategoriaTitulo,FechaDeCarga9,ServicioAgente,Nivel,Ciclo,Modalidad,Zona,grupoIncumbencias,FechaPresentacion,Controlado,Cargo)
				VALUES 
				(@idagente,null,@cargogen,@asignaturagen,null,@Organizacion,@descrubic,@localidad,null,@D4,null,@H4,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,getdate(),null,@nivel,null,@modalidad,@zona,@grupoincumbencias,null,null,null)
			END
			IF @D5 IS not null
			BEGIN
				INSERT INTO dbo.tb_ServiciosHistoricos
				(idAgente,NumeroOrden,CargoGenerico,AsignaturaGenerica,Horas,UbicacionOriginal,DescrUbic,Localidad,SituacionRevista,FechaAlta,Baja,FechaBaja,FechaTermino,NormaBaja,CausaBaja,CausaAlta,TipoServicio,Sistema,RegimenLaboral,Financiamiento,Presupuesto,	Finalidad,TipoDeFuncion,RegimenSalarial,RegimenDesignacion,NroAfiliadoJubilacion,CajaJubilacion,NormaAlta,CategoriaTitulo,FechaDeCarga9,ServicioAgente,Nivel,Ciclo,Modalidad,Zona,grupoIncumbencias,FechaPresentacion,Controlado,Cargo)
				VALUES 
				(@idagente,null,@cargogen,@asignaturagen,null,@Organizacion,@descrubic,@localidad,null,@D5,null,@H5,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,getdate(),null,@nivel,null,@modalidad,@zona,@grupoincumbencias,null,null,null)
			END
			IF @D6 IS not null
			BEGIN
				INSERT INTO dbo.tb_ServiciosHistoricos
				(idAgente,NumeroOrden,CargoGenerico,AsignaturaGenerica,Horas,UbicacionOriginal,DescrUbic,Localidad,SituacionRevista,FechaAlta,Baja,FechaBaja,FechaTermino,NormaBaja,CausaBaja,CausaAlta,TipoServicio,Sistema,RegimenLaboral,Financiamiento,Presupuesto,	Finalidad,TipoDeFuncion,RegimenSalarial,RegimenDesignacion,NroAfiliadoJubilacion,CajaJubilacion,NormaAlta,CategoriaTitulo,FechaDeCarga9,ServicioAgente,Nivel,Ciclo,Modalidad,Zona,grupoIncumbencias,FechaPresentacion,Controlado,Cargo)
				VALUES 
				(@idagente,null,@cargogen,@asignaturagen,null,@Organizacion,@descrubic,@localidad,null,@D6,null,@H6,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,getdate(),null,@nivel,null,@modalidad,@zona,@grupoincumbencias,null,null,null)
			END
END









GO
ALTER TABLE [dbo].[tb_ServiciosHistoricosMultiples] ADD CONSTRAINT [PK_tb_ServiciosHistoricosMultiples] PRIMARY KEY CLUSTERED  ([idServiciosHistoricosMultiples]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tb_ServiciosHistoricosMultiples] WITH NOCHECK ADD CONSTRAINT [FK_tb_ServiciosHistoricosMultiples_tb_Agentes] FOREIGN KEY ([Agente]) REFERENCES [dbo].[tb_Agentes] ([idAgente])
GO
ALTER TABLE [dbo].[tb_ServiciosHistoricosMultiples] WITH NOCHECK ADD CONSTRAINT [FK_tb_ServiciosHistoricosMultiples_tb_AsignaturasGenericas] FOREIGN KEY ([AsignaturaGen]) REFERENCES [dbo].[tb_AsignaturasGenericas] ([idAsignaturaGenerica])
GO
ALTER TABLE [dbo].[tb_ServiciosHistoricosMultiples] WITH NOCHECK ADD CONSTRAINT [FK_tb_ServiciosHistoricosMultiples_tb_CargosGenericos] FOREIGN KEY ([CargoGen]) REFERENCES [dbo].[tb_CargosGenericos] ([idCargoGenerico])
GO
ALTER TABLE [dbo].[tb_ServiciosHistoricosMultiples] ADD CONSTRAINT [FK_tb_ServiciosHistoricosMultiples_tb_GruposDeIncumbencias] FOREIGN KEY ([GrupoIncumbencias]) REFERENCES [dbo].[tb_GruposDeIncumbencias] ([idGrupoIncumbencia])
GO
ALTER TABLE [dbo].[tb_ServiciosHistoricosMultiples] WITH NOCHECK ADD CONSTRAINT [FK_tb_ServiciosHistoricosMultiples_tb_ModalidadesEnsenanza] FOREIGN KEY ([Modalidad]) REFERENCES [dbo].[tb_ModalidadesEnsenanza] ([idModalidad])
GO
ALTER TABLE [dbo].[tb_ServiciosHistoricosMultiples] ADD CONSTRAINT [FK_tb_ServiciosHistoricosMultiples_tb_NivelesEnsenanza] FOREIGN KEY ([Nivel]) REFERENCES [dbo].[tb_NivelesEnsenanza] ([idNivelEnsenanza])
GO
ALTER TABLE [dbo].[tb_ServiciosHistoricosMultiples] WITH NOCHECK ADD CONSTRAINT [FK_tb_ServiciosHistoricosMultiples_tb_Organizaciones] FOREIGN KEY ([Organizacion]) REFERENCES [dbo].[tb_Organizaciones] ([idOrganizaciones])
GO
ALTER TABLE [dbo].[tb_ServiciosHistoricosMultiples] ADD CONSTRAINT [FK_tb_ServiciosHistoricosMultiples_tb_Zonas] FOREIGN KEY ([Zona]) REFERENCES [dbo].[tb_Zonas] ([idZona])
GO
